﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using SistemaLib.Gestores;
using Coolite.Ext.Web;
using Coolite.Utilities;
using SistemaLib.Entidades;

namespace SistemaWeb.Paginas
{
    public partial class ListaTareas : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Ext.IsAjaxRequest)
            {
                RefrescarGrilla();
            }

            EdTarea.SeModificoEntidad += new EventHandler(EdTarea_SeModificoEntidad);
        }

        public void EdTarea_SeModificoEntidad(object sender, EventArgs e)
        {            
            RefrescarGrilla();
        }

        
        public void RefrescarGrilla()
        {
            Store1.DataSource = GestorTareas.ListarTareas();
            Store1.DataBind();
        }
       
        [AjaxMethod]
        public void RowSelect(object sender, AjaxEventArgs e)
        {
            int id = int.Parse(e.ExtraParams["ID"]);
            TareaToShow tar = GestorTareas.CargarTareaToShow(id);

            idTB.Text = tar.Id.ToString();
            nombreTB.Text = tar.Nombre;
            descripcionTB.Text = tar.Descripcion;
            prioridadTB.Text = tar.Prioridad;
            tipoTB.Text = tar.Tipo;
            complejidadTB.Text = tar.Complejidad;
            estadoTB.Text = tar.Estado;
            perfilTB.Text = tar.PerfilRequerido;
            seniorityTB.Text = tar.SeniorityRequerido;
            fechaCreacionTB.SelectedDate = tar.fechaCreacion;
        }

        [AjaxMethod]
        public void CargarPopupEditor(string id)
        {            
            int idTarea = int.Parse(id);
            EdTarea.CargarCombos();
            EdTarea.CargarTarea(idTarea);
        }

        [AjaxMethod]
        public void CargarPopupAsignacion(string id)
        {
            string role = Session["role"].ToString();
            if (role == "Administrador" || role == "Project Manager")
            {
                int idTarea = int.Parse(id);
                EdAsignacionTarea.CargarCampos(idTarea);
            }
            else
            {
                Ext.Msg.Alert("Permisos Insuficientes", "Los usuarios con perfil "+ role + " no pueden realizar asignaciones de tareas.").Show();
            }
        }
        
        [AjaxMethod]
        public void EliminarTarea(string id)
        {              
            int idTarea = int.Parse(id);
            GestorTareas.Eliminar(idTarea);
            RefrescarGrilla();

        }
        
        
    }
}
